﻿
namespace Sripirom.ATS.Core.ExceptionHandler
{                                   
    public class Errors
    {
        //System Id
        public const decimal SYSTEM_ID_WS   = 1;        //Default for Web Service
        public const decimal SYSTEM_ID_ATS  = 16;       //System Id of ATS Service
        public const decimal SYSTEM_ID_BPS  = 0;        //System Id of BPS Service (Not exist in DB now, TODO edit if inserted)

        //Validate Error [Pattern=ERR-WS-1xxxxx, xxxxx=Running number]
        public const string ERROR_DATA_NOT_FOUND                = "ERR-WS-100001";      //Data not found, please contact administrator.
        public const string ERROR_NO_DATA_FOUND                 = "ERR-WS-100002";      //ERROR NO_DATA_FOUND.
        //public const string ERROR_EXCEPTION_TRANSACTION         = "ERR-WS-100003";      //ERROR EXCEPTION TRANSACTION.
        public const string VALIDATE_MANDATORY_FAIL             = "ERR-WS-100004";      //Validate mandatory fail.
        public const string DUPLICATE_TRANSACTION               = "ERR-WS-100005";      //Duplicate transactions.
        public const string EFFECTIVE_DATE_OVER_FUTURE_DATE     = "ERR-WS-100006";      //MV : An effective date no more than 30 days in the future.
        public const string SENDING_ACCOUNT_NOT_REGISTER        = "ERR-WS-100007";      //Sending account does not register.
        public const string INVALID_SENDING_ACCOUNT_STATUS      = "ERR-WS-100008";      //Invalid sending account status.
        public const string INVALID_RECEIVING_ACCOUNT_STATUS    = "ERR-WS-100009";      //Invalid receiving account status.
        public const string FEE_DATA_NOT_FOUND                  = "ERR-WS-100010";      //No Fee Group/Sub Group is set up.
        public const string FEE_PREPARE_DATA_ERROR              = "ERR-WS-100011";      //Prepare Fee Group: Other error encountered.
        public const string INVALID_SENDING_ACCOUNT             = "ERR-WS-100012";      //Invalid sending account.
        public const string INVALID_RECEIVING_ACCOUNT           = "ERR-WS-100013";      //Invalid receiving account.
        public const string INVALID_ACCOUNT_STATUS              = "ERR-WS-100014";      //Invalid account status.
        public const string INVALID_ACCOUNT                     = "ERR-WS-100015";      //Invalid account.
        public const string PRODUCT_COMPANY_NOT_REGISTER        = "ERR-WS-100016";      //Product and company is not registered in ATS.
        public const string SUBPRODUCT_NOT_REGISTER             = "ERR-WS-100017";      //Subproduct is not registered in ATS.
        public const string DUPLICATE_REGISTER                  = "ERR-WS-100018";      //Duplication transaction.
        public const string INVALID_ATS_PERMISSION              = "ERR-WS-100019";      //Invalid ATS permission.
        public const string INVALID_TRANSFER_LIMIT_BY_CHANNEL   = "ERR-WS-100020";      //Transfer amount less or over limit by channel.
        public const string INVALID_TRANSFER_LIMIT_BY_BALANCE   = "ERR-WS-100021";      //Transfer over limit by balance.
        public const string INVALID_REQUEST_MESSAGE             = "ERR-WS-100022";      //Your request message is invalid or bad command.
        public const string XML_DESERIALIZE_FAIL                = "ERR-WS-100023";      //Deserialize xml string to object fail.
        public const string XSD_PATH_FAIL                       = "ERR-WS-100024";      //Can't get config file xsd path.
        public const string INVALID_XSD                         = "ERR-WS-100025";      //Validate format xsd role invalid.
        public const string INVALID_MESSAGE_DATA                = "ERR-WS-100026";      //Validate Message data fail.
        public const string TRANSFORM_DATA_FAIL                 = "ERR-WS-100027";      //Can't transform data gateway.
        public const string SERVICE_NOT_AVAILABLE               = "ERR-WS-100028";      //Service not availability.
        public const string TRANSACTION_DATE_NOT_CORRECT        = "ERR-WS-100029";      //TRANSACTION_DATE not correct.Please set to current date.
        public const string TRANSFER_TYPE_NOT_FOUND             = "ERR-WS-100030";      //TRANSFER_TYPE not found.
        public const string PROCESS_TRANSACTION_FAIL            = "ERR-WS-100031";      //Process transaction fail.
        public const string ANNOUNCE_FEE_AMOUNT_NOT_MATCH       = "ERR-WS-100032";      //ANNOUNCE_FEE_AMOUNT from channel not equal to TOTAL_TRAN_REF_ID_AMOUNT.
        public const string EFFECTIVE_DATE_NOT_TODAY            = "ERR-WS-100033";      //Effective date is not today.
        public const string ACCOUNT_NOT_MATCH                   = "ERR-WS-100034";      //Account no does not match with fee account no.
        public const string INVALID_SENDING_BRANCH              = "ERR-WS-100035";      //Invalid Sending Branch.
        public const string INVALID_RECEIVING_BRANCH            = "ERR-WS-100036";      //Invalid Receiving Branch.
        public const string INVALID_CHANNEL_ID                  = "ERR-WS-100037";      //Invalid ChannelID.
        public const string INVALID_TRANSFER_TYPE               = "ERR-WS-100038";      //Invalid TransferType.
        public const string INVALID_CURRENCY                    = "ERR-WS-100039";      //Invalid Currency.
        //public const string TRANSFER_ON_US_ONLY                 = "ERR-WS-100040";      //Support Transfer On Us only.
        public const string INVALID_ORDERING_BRANCH             = "ERR-WS-100041";      //Invalid Ordering Branch.
        public const string INVALID_SENDING_BANK_CODE           = "ERR-WS-100042";      //Invalid Sending Bank Code.
        public const string INVALID_RECEIVING_BANK_CODE         = "ERR-WS-100043";      //Invalid Receiving Bank Code.
        public const string DUPLICATE_UNREGISTER                = "ERR-WS-100044";      //Duplicated unregistration request.
        public const string INVALID_BARCODE_LENGTH              = "ERR-WS-100045";      //Invalid barcode length.
        public const string DATA_NOT_FOUND                      = "ERR-WS-100046";      //Data not found.
        public const string AMOUNT_LESS_THAN_MINIMUM            = "ERR-WS-100047";      //Amount is less than minimum.
        public const string AMOUNT_MORE_THAN_MAXIMUM            = "ERR-WS-100048";      //Amount is more than maximum.
        public const string INVALID_AMOUNT                      = "ERR-WS-100049";      //Invalid amount.
        public const string INVALID_DATA_TYPE                   = "ERR-WS-100050";      //[0] Validation Error : Invalid data type.
        public const string LENGTH_LESS_THAN_MINIMUM            = "ERR-WS-100051";      //[0] Validation Error : Length is less than minimum.
        public const string LENGTH_GREATER_THAN_MAXIMUM         = "ERR-WS-100052";      //[0] Validation Error : Length is greater than maximum.
        public const string INVALID_DUE_DATE_FORMAT             = "ERR-WS-100053";      //[0] Validation Error : Invalid due date format.
        public const string INVALID_PREFIX                      = "ERR-WS-100054";      //[0] Validation Error : Invalid prefix.
        public const string INVALID_SUFFIX                      = "ERR-WS-100055";      //[0] Validation Error : Invalid suffix.
        public const string PROGRAM_VALIDATION_ERROR            = "ERR-WS-100056";      //Program Validation Error : [0]
        public const string SERVICE_INACTIVE                    = "ERR-WS-100057";      //Service was inactive.
        public const string SUBSERVICE_INACTIVE                 = "ERR-WS-100058";      //Sub-Service was inactive.
        public const string COMPANY_INACTIVE                    = "ERR-WS-100059";      //Company was inactive.
        public const string PROFILE_NOT_FOUND                   = "ERR-WS-100060";      //Profile was not found.
        public const string PROFILE_INACTIVE                    = "ERR-WS-100061";      //Profile was inactive.
        public const string PROFILE_OUT_OF_PERIOD               = "ERR-WS-100062";      //Profile out of period.
        public const string DUPLICATE_TRANSACTION_ID            = "ERR-WS-100063";      //Duplicate transaction id : [0]
        public const string DUPLICATE_TRANSACTION_COMP_CODE     = "ERR-WS-100064";      //Duplicate bill payment of com code : [0], ref1 : [1], ref2 : [2]
        public const string FEE_SERVICE_ERROR                   = "ERR-WS-100065";      //Fee Service Error : [0]
        public const string INVALID_PAY_TYPE                    = "ERR-WS-100066";      //Invalid pay type.
        public const string REQUIRED_FIELD                      = "ERR-WS-100067";      //Required filed : [0]
        public const string PAY_TYPE_INACTIVE                   = "ERR-WS-100068";      //Pay type was inactive.
        public const string NOT_FOUND                           = "ERR-WS-100069";      //Not found : [0]
        public const string FEE_NOT_OVERRIDE                    = "ERR-WS-100070";      //Could not override fee.
        public const string FEE_INPUT_NOT_CORRECT               = "ERR-WS-100071";      //Fee input not correct.
        public const string OVER_DUE_DATE                       = "ERR-WS-100072";      //Over due date.
        public const string FCR_ERROR_NOT_FOUND                 = "ERR-WS-100073";      //FCR DB Error : Not found [0]
        public const string CURRENCY_INACTIVE                   = "ERR-WS-100074";      //Currency was inactive.
        public const string BARCODE_INACTIVE                    = "ERR-WS-100075";      //Barcode was inactive.
        public const string INVALID_FEE_PAY_TYPE                = "ERR-WS-100076";      //Invalid fee pay type.
        public const string INCORRECT_TAX_ID                    = "ERR-WS-100077";      //Incorrect Tax ID.
        public const string BARCODE_ELEMENT_INVALID             = "ERR-WS-100078";      //Barcode element is invalid.
        public const string FEE_SENDING_ACCOUNT_INACTIVE        = "ERR-WS-100079";      //Fee's sending account was inactive.
        //public const string FEE_RECEIVING_ACCOUNT_INACTIVE      = "ERR-WS-100080";      //Fee's receiving account was inactive.
        public const string INSUFFICIENT_FUNDS                  = "ERR-WS-100081";      //Insufficient Funds.
        public const string LENGTH_NOT_CORRECT                  = "ERR-WS-100082";      //[0] length is not correct.
        public const string FORMAT_NOT_CORRECT                  = "ERR-WS-100083";      //[0] format is not correct.
        public const string MANDATORY_REQUIRED                  = "ERR-WS-100084";      //[0] mandatory field is required.
        public const string CRITERIA_NOT_SUPPORT                = "ERR-WS-100085";      //[0] criteria is not support.
        public const string INVALID_PARAMETER                   = "ERR-WS-100086";      //[0] is invalid.
        public const string LENGTH_NOT_EQUAL_FIXED              = "ERR-WS-100087";      //[0] Validation Error : Length is not equal fixed length.
        public const string INVALID_FEE_SENDING_ACCOUNT         = "ERR-WS-100088";      //Invalid fee's sending account.
        public const string FEE_PAY_TYPE_INACTIVE               = "ERR-WS-100089";      //Fee's pay type was inactive.
        public const string EFFECTIVE_DATE_CANNOT_BACKDATE      = "ERR-WS-100090";      //MV : An effective Date cannot be back date.
        public const string INVALID_FEE_SENDING_ACCOUNT_BRANCH  = "ERR-WS-100091";      //Invalid fee's sending account branch.
        public const string INVALID_FEE_AMOUNT                  = "ERR-WS-100092";      //Invalid fee amount.
        public const string INVALID_FEE_SENDING_REQUEST         = "ERR-WS-100093";      //Invalid fee's sending request.
        public const string INVALID_ORDERING_BANK_CODE          = "ERR-WS-100094";      //Invalid Ordering Bank Code.
        public const string INVALID_FEE_SENDING_BANK_CODE       = "ERR-WS-100095";      //Invalid fee's sending bank code.
        public const string PROFILE_PENDING                     = "ERR-WS-100096";      //Profile is pending.

        //Internal Error [Pattern=ERR-WS-8xxxxx, xxxxx=Running number]
        public const string UNHANDLED_EXCEPTION                 = "ERR-WS-800001";      //Unhandled exception.
        public const string UNKNOWN_ERROR                       = "ERR-WS-800002";      //Error transaction.
        public const string INTERNAL_ERROR                      = "ERR-WS-800003";      //This criteria is not mapping the commands, please contact administrator.

        //External Error [Pattern=ERR-WS-9xxxxx, xxxxx=Running number]
        public const string ERROR_PCC_INQUIRY                   = "ERR-WS-900001";      //PCC Service Inquiry Error Code : [0] Error Desc : [1]
        public const string ERROR_PCC_CREDIT                    = "ERR-WS-900002";      //PCC Service Credit Error Code : [0] Error Desc : [1]
        public const string ERROR_FCR_CONNECT                   = "ERR-WS-900003";      //Can’t connect to FCCON Service.
    
        
    }
}
